import { createRequest } from '../config/axios.config';

const serviceName = 'evaluation-data-center';

export interface EvaluationDataCenterSurveyInstitutionPaperOneGetDTO {
    institution_paper_id: string;
}
/**
 * Query One
 */
export const EvaluationDataCenterSurveyInstitutionPaperOneGet = createRequest<
    EvaluationDataCenterSurveyInstitutionPaperOneGetDTO,
    ResModelInstitutionPaper
>('EvaluationDataCenterSurveyInstitutionPaperOneGet', ({ institution_paper_id }) => ({
    url: `/evaluation-data-center/survey/institution_paper/one`,
    method: 'GET',
    params: {
        institution_paper_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskAllGetDTO {
    name?: string;
    page?: number;
    progress_status?: ProgressStatus;
    size?: number;
}
/**
 * Query All
 */
export const EvaluationDataCenterSurveyInstitutionTaskAllGet = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskAllGetDTO,
    ResModelPageSizeResModelListQueryAllRes
>('EvaluationDataCenterSurveyInstitutionTaskAllGet', ({ name, progress_status, page, size }) => ({
    url: `/evaluation-data-center/survey/institution_task/all`,
    method: 'GET',
    params: {
        name,
        progress_status,
        page,
        size,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskAllPaperTaskGetDTO {
    institution_id: string;
    survey_id: string;
}
/**
 * All Paper Task
 */
export const EvaluationDataCenterSurveyInstitutionTaskAllPaperTaskGet = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskAllPaperTaskGetDTO,
    ResModelListOneTaskPaperRes
>('EvaluationDataCenterSurveyInstitutionTaskAllPaperTaskGet', ({ survey_id, institution_id }) => ({
    url: `/evaluation-data-center/survey/institution_task/all_paper_task`,
    method: 'GET',
    params: {
        survey_id,
        institution_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskBulkSubmitTableItemPostDTO {
    requestBody: BulkSubmitTableItemReq;
}
/**
 * Bulk Submit Table Item
 */
export const EvaluationDataCenterSurveyInstitutionTaskBulkSubmitTableItemPost = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskBulkSubmitTableItemPostDTO,
    ResModelStr
>('EvaluationDataCenterSurveyInstitutionTaskBulkSubmitTableItemPost', ({ requestBody }) => ({
    url: `/evaluation-data-center/survey/institution_task/bulk_submit_table_item`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskGradeSubjectGroupsGetDTO {
    institution_paper_id: string;
}
/**
 * Grade Subject Groups
 */
export const EvaluationDataCenterSurveyInstitutionTaskGradeSubjectGroupsGet = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskGradeSubjectGroupsGetDTO,
    ResModelGradeSubjectGroupsRes
>('EvaluationDataCenterSurveyInstitutionTaskGradeSubjectGroupsGet', ({ institution_paper_id }) => ({
    url: `/evaluation-data-center/survey/institution_task/grade_subject_groups`,
    method: 'GET',
    params: {
        institution_paper_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskOneDetailGetDTO {
    institution_id: string;
    survey_id: string;
}
/**
 * One Detail
 */
export const EvaluationDataCenterSurveyInstitutionTaskOneDetailGet = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskOneDetailGetDTO,
    ResModelOneDetailRes
>('EvaluationDataCenterSurveyInstitutionTaskOneDetailGet', ({ survey_id, institution_id }) => ({
    url: `/evaluation-data-center/survey/institution_task/one_detail`,
    method: 'GET',
    params: {
        survey_id,
        institution_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskPaperGetDTO {
    institution_paper_id: string;
}
/**
 * Query Paper
 */
export const EvaluationDataCenterSurveyInstitutionTaskPaperGet = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskPaperGetDTO,
    ResModelPaperItem
>('EvaluationDataCenterSurveyInstitutionTaskPaperGet', ({ institution_paper_id }) => ({
    url: `/evaluation-data-center/survey/institution_task/paper`,
    method: 'GET',
    params: {
        institution_paper_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskPaperItemsAnsGetDTO {
    institution_paper_id: string;
}
/**
 * Paper Items Ans
 */
export const EvaluationDataCenterSurveyInstitutionTaskPaperItemsAnsGet = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskPaperItemsAnsGetDTO,
    ResModelPaperItemsAnsRes
>('EvaluationDataCenterSurveyInstitutionTaskPaperItemsAnsGet', ({ institution_paper_id }) => ({
    url: `/evaluation-data-center/survey/institution_task/paper_items_ans`,
    method: 'GET',
    params: {
        institution_paper_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskSubmitItemPostDTO {
    requestBody: SubmitItemReq;
}
/**
 * Submit Item
 */
export const EvaluationDataCenterSurveyInstitutionTaskSubmitItemPost = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskSubmitItemPostDTO,
    ResModelStr
>('EvaluationDataCenterSurveyInstitutionTaskSubmitItemPost', ({ requestBody }) => ({
    url: `/evaluation-data-center/survey/institution_task/submit_item`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskSubmitItemByCustomKeyPostDTO {
    requestBody: SubmitItemByCustomKeyReq;
}
/**
 * Submit Item By Custom Key
 */
export const EvaluationDataCenterSurveyInstitutionTaskSubmitItemByCustomKeyPost = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskSubmitItemByCustomKeyPostDTO,
    ResModelStr
>('EvaluationDataCenterSurveyInstitutionTaskSubmitItemByCustomKeyPost', ({ requestBody }) => ({
    url: `/evaluation-data-center/survey/institution_task/submit_item_by_custom_key`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemPostDTO {
    requestBody: SubmitItemFromOtherItemReq;
}
/**
 * Submit Item From Other Item
 */
export const EvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemPost = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemPostDTO,
    ResModelStr
>('EvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemPost', ({ requestBody }) => ({
    url: `/evaluation-data-center/survey/institution_task/submit_item_from_other_item`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemByCustomKeyPostDTO {
    requestBody: SubmitItemFromOtherItemReqByCustomKey;
}
/**
 * Submit Item From Other Item
 */
export const EvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemByCustomKeyPost =
    createRequest<
        EvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemByCustomKeyPostDTO,
        ResModelStr
    >(
        'EvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemByCustomKeyPost',
        ({ requestBody }) => ({
            url: `/evaluation-data-center/survey/institution_task/submit_item_from_other_item_by_custom_key`,
            method: 'POST',
            data: requestBody,
            headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
        }),
    );

export interface EvaluationDataCenterSurveyInstitutionTaskSubmitPaperPostDTO {
    requestBody: SubmitPaperReq;
}
/**
 * Submit Paper
 */
export const EvaluationDataCenterSurveyInstitutionTaskSubmitPaperPost = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskSubmitPaperPostDTO,
    ResModelStr
>('EvaluationDataCenterSurveyInstitutionTaskSubmitPaperPost', ({ requestBody }) => ({
    url: `/evaluation-data-center/survey/institution_task/submit_paper`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyInstitutionTaskSubmitTableItemPostDTO {
    requestBody: SubmitTableItemReq;
}
/**
 * Submit Table Item
 */
export const EvaluationDataCenterSurveyInstitutionTaskSubmitTableItemPost = createRequest<
    EvaluationDataCenterSurveyInstitutionTaskSubmitTableItemPostDTO,
    ResModelStr
>('EvaluationDataCenterSurveyInstitutionTaskSubmitTableItemPost', ({ requestBody }) => ({
    url: `/evaluation-data-center/survey/institution_task/submit_table_item`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyPaperOneGetDTO {
    paper_id: string;
    survey_id: string;
}
/**
 * Query One
 */
export const EvaluationDataCenterSurveyPaperOneGet = createRequest<
    EvaluationDataCenterSurveyPaperOneGetDTO,
    ResModelPaperItem
>('EvaluationDataCenterSurveyPaperOneGet', ({ survey_id, paper_id }) => ({
    url: `/evaluation-data-center/survey/paper/one`,
    method: 'GET',
    params: {
        survey_id,
        paper_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveySurveyOneGetDTO {
    survey_id: string;
}
/**
 * Query One
 */
export const EvaluationDataCenterSurveySurveyOneGet = createRequest<
    EvaluationDataCenterSurveySurveyOneGetDTO,
    ResModelAllRes
>('EvaluationDataCenterSurveySurveyOneGet', ({ survey_id }) => ({
    url: `/evaluation-data-center/survey/survey/one`,
    method: 'GET',
    params: {
        survey_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveySurveySchoolInfoAddPostDTO {
    requestBody: AddReq;
}
/**
 * Add
 */
export const EvaluationDataCenterSurveySurveySchoolInfoAddPost = createRequest<
    EvaluationDataCenterSurveySurveySchoolInfoAddPostDTO,
    ResModelStr
>('EvaluationDataCenterSurveySurveySchoolInfoAddPost', ({ requestBody }) => ({
    url: `/evaluation-data-center/survey/survey_school_info/add`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveySurveySchoolInfoOneGetDTO {
    survey_id: string;
}
/**
 * Query One
 */
export const EvaluationDataCenterSurveySurveySchoolInfoOneGet = createRequest<
    EvaluationDataCenterSurveySurveySchoolInfoOneGetDTO,
    ResModelQueryOneRes
>('EvaluationDataCenterSurveySurveySchoolInfoOneGet', ({ survey_id }) => ({
    url: `/evaluation-data-center/survey/survey_school_info/one`,
    method: 'GET',
    params: {
        survey_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveySurveySchoolInfoUpdatePostDTO {
    requestBody: AddReq;
}
/**
 * Add
 */
export const EvaluationDataCenterSurveySurveySchoolInfoUpdatePost = createRequest<
    EvaluationDataCenterSurveySurveySchoolInfoUpdatePostDTO,
    ResModelStr
>('EvaluationDataCenterSurveySurveySchoolInfoUpdatePost', ({ requestBody }) => ({
    url: `/evaluation-data-center/survey/survey_school_info/update`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsGetDTO {
    compulsory?: boolean;
    survey_id: string;
    term?: number | null;
    top_key?: string | null;
    top_level: number;
}
/**
 * Course Offerings
 */
export const EvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsGet = createRequest<
    EvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsGetDTO,
    ResModelCourseOfferingsRes
>(
    'EvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsGet',
    ({ survey_id, top_level, top_key, compulsory, term }) => ({
        url: `/evaluation-data-center/survey_analysis/course_ana/course_offerings`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
            compulsory,
            term,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationDataCenterSurveyAnalysisCourseAnaSubjectGradeCourseOfferingsGetDTO {
    compulsory?: boolean;
    grades: string;
    subject: number;
    survey_id: string;
    term?: number | null;
    top_key?: number | null;
    top_level: number;
}
/**
 * Subject Grade Course Offerings
 */
export const EvaluationDataCenterSurveyAnalysisCourseAnaSubjectGradeCourseOfferingsGet =
    createRequest<
        EvaluationDataCenterSurveyAnalysisCourseAnaSubjectGradeCourseOfferingsGetDTO,
        ResModelListSubjectGradeCourseOfferingsRes
    >(
        'EvaluationDataCenterSurveyAnalysisCourseAnaSubjectGradeCourseOfferingsGet',
        ({ survey_id, top_level, top_key, compulsory, term, subject, grades }) => ({
            url: `/evaluation-data-center/survey_analysis/course_ana/subject_grade_course_offerings`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                compulsory,
                term,
                subject,
                grades,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheCsaAnaUnderEachInstitutionGetDTO {
    query_level: number;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Analysis Of The Csa Ana Under Each Institution
 */
export const EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheCsaAnaUnderEachInstitutionGet =
    createRequest<
        EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheCsaAnaUnderEachInstitutionGetDTO,
        ResModelListRegionClassStudentAverageRes
    >(
        'EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheCsaAnaUnderEachInstitutionGet',
        ({ survey_id, top_level, top_key, query_level }) => ({
            url: `/evaluation-data-center/survey_analysis/general/analysis_of_the_csa_ana_under_each_institution`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                query_level,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheNatureOfSchoolsUnderEachInstitutionGetDTO {
    query_level: number;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Analysis Of The Nature Of Schools Under Each Institution
 */
export const EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheNatureOfSchoolsUnderEachInstitutionGet =
    createRequest<
        EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheNatureOfSchoolsUnderEachInstitutionGetDTO,
        ResModelListRegionCntRateListRes
    >(
        'EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheNatureOfSchoolsUnderEachInstitutionGet',
        ({ survey_id, top_level, top_key, query_level }) => ({
            url: `/evaluation-data-center/survey_analysis/general/analysis_of_the_nature_of_schools_under_each_institution`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                query_level,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheTypeOfSchoolsUnderEachInstitutionGetDTO {
    query_level: number;
    school_nature?: number | null;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Analysis Of The Type Of Schools Under Each Institution
 */
export const EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheTypeOfSchoolsUnderEachInstitutionGet =
    createRequest<
        EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheTypeOfSchoolsUnderEachInstitutionGetDTO,
        ResModelListRegionCntRateListRes
    >(
        'EvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheTypeOfSchoolsUnderEachInstitutionGet',
        ({ survey_id, top_level, top_key, query_level, school_nature }) => ({
            url: `/evaluation-data-center/survey_analysis/general/analysis_of_the_type_of_schools_under_each_institution`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                query_level,
                school_nature,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface EvaluationDataCenterSurveyAnalysisGeneralClassStudentAverageAnaGetDTO {
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Class Student Average Ana
 */
export const EvaluationDataCenterSurveyAnalysisGeneralClassStudentAverageAnaGet = createRequest<
    EvaluationDataCenterSurveyAnalysisGeneralClassStudentAverageAnaGetDTO,
    ResModelListClassStudentAverageRes
>(
    'EvaluationDataCenterSurveyAnalysisGeneralClassStudentAverageAnaGet',
    ({ survey_id, top_level, top_key }) => ({
        url: `/evaluation-data-center/survey_analysis/general/class_student_average_ana`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationDataCenterSurveyAnalysisGeneralProgressStatusGetDTO {
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Progress Status
 */
export const EvaluationDataCenterSurveyAnalysisGeneralProgressStatusGet = createRequest<
    EvaluationDataCenterSurveyAnalysisGeneralProgressStatusGetDTO,
    ResModelProgressStatusRes
>(
    'EvaluationDataCenterSurveyAnalysisGeneralProgressStatusGet',
    ({ survey_id, top_level, top_key }) => ({
        url: `/evaluation-data-center/survey_analysis/general/progress_status`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllInstitutionsGetDTO {
    query_level: number;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Progress Status For All Institutions
 */
export const EvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllInstitutionsGet =
    createRequest<
        EvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllInstitutionsGetDTO,
        ResModelListRegionProgressRes
    >(
        'EvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllInstitutionsGet',
        ({ survey_id, top_level, top_key, query_level }) => ({
            url: `/evaluation-data-center/survey_analysis/general/progress_status_for_all_institutions`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                query_level,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface EvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllLevelsGetDTO {
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Progress Status For All Levels
 */
export const EvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllLevelsGet = createRequest<
    EvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllLevelsGetDTO,
    ResModelListInstitutionLevelProgressDistributionRes
>(
    'EvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllLevelsGet',
    ({ survey_id, top_level, top_key }) => ({
        url: `/evaluation-data-center/survey_analysis/general/progress_status_for_all_levels`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationDataCenterSurveyAnalysisGeneralSchoolNatureAnaGetDTO {
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * School Nature Ana
 */
export const EvaluationDataCenterSurveyAnalysisGeneralSchoolNatureAnaGet = createRequest<
    EvaluationDataCenterSurveyAnalysisGeneralSchoolNatureAnaGetDTO,
    ResModelListCntRateAnaRes
>(
    'EvaluationDataCenterSurveyAnalysisGeneralSchoolNatureAnaGet',
    ({ survey_id, top_level, top_key }) => ({
        url: `/evaluation-data-center/survey_analysis/general/school_nature_ana`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationDataCenterSurveyAnalysisGeneralSchoolTasksDetailGetDTO {
    page?: number;
    process_status?: number | null;
    region_name?: string | null;
    school_nature?: number | null;
    school_type?: number | null;
    size?: number;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * School Tasks Detail
 */
export const EvaluationDataCenterSurveyAnalysisGeneralSchoolTasksDetailGet = createRequest<
    EvaluationDataCenterSurveyAnalysisGeneralSchoolTasksDetailGetDTO,
    ResModelPageSizeResModelListSchoolTaskDetailRes
>(
    'EvaluationDataCenterSurveyAnalysisGeneralSchoolTasksDetailGet',
    ({
        survey_id,
        top_level,
        top_key,
        process_status,
        region_name,
        school_type,
        school_nature,
        page,
        size,
    }) => ({
        url: `/evaluation-data-center/survey_analysis/general/school_tasks_detail`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
            process_status,
            region_name,
            school_type,
            school_nature,
            page,
            size,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationDataCenterSurveyAnalysisGeneralSchoolTypeAnaGetDTO {
    school_nature?: number | null;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * School Type Ana
 */
export const EvaluationDataCenterSurveyAnalysisGeneralSchoolTypeAnaGet = createRequest<
    EvaluationDataCenterSurveyAnalysisGeneralSchoolTypeAnaGetDTO,
    ResModelListCntRateAnaRes
>(
    'EvaluationDataCenterSurveyAnalysisGeneralSchoolTypeAnaGet',
    ({ survey_id, top_level, top_key, school_nature }) => ({
        url: `/evaluation-data-center/survey_analysis/general/school_type_ana`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
            school_nature,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

/**
 * Query One
 */
export const EvaluationDataCenterSystemSchoolInfoOneGet = createRequest<
    undefined,
    ResModelUnionSurveySchoolInfoReqNoneType
>('EvaluationDataCenterSystemSchoolInfoOneGet', () => ({
    url: `/evaluation-data-center/system/school_info/one`,
    method: 'GET',
    headers: { 'Service-Name': serviceName },
}));

/**
 * System Dict
 */
export const EvaluationDataCenterSystemSystemDictSystemDictGet = createRequest<
    undefined,
    ResModelDictStrEnumTypeRes
>('EvaluationDataCenterSystemSystemDictSystemDictGet', () => ({
    url: `/evaluation-data-center/system/system_dict/system_dict`,
    method: 'GET',
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationDataCenterSystemTextbookAllGetDTO {
    editor_in_chief?: string | null;
    grade?: number | null;
    name?: string | null;
    publishing_unit?: string | null;
    school_term?: number | null;
    show_in_class_schedule?: boolean | null;
    stage?: number | null;
    subject?: number | null;
}
/**
 * Query All
 */
export const EvaluationDataCenterSystemTextbookAllGet = createRequest<
    EvaluationDataCenterSystemTextbookAllGetDTO,
    ResModelListTextbook
>(
    'EvaluationDataCenterSystemTextbookAllGet',
    ({
        grade,
        subject,
        name,
        editor_in_chief,
        publishing_unit,
        show_in_class_schedule,
        stage,
        school_term,
    }) => ({
        url: `/evaluation-data-center/system/textbook/all`,
        method: 'GET',
        params: {
            grade,
            subject,
            name,
            editor_in_chief,
            publishing_unit,
            show_in_class_schedule,
            stage,
            school_term,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationDataCenterSystemTextbookProvincialLocalCurriculumGetDTO {
    grade?: number | null;
    province_id?: string | null;
}
/**
 * Provincial Local Curriculum
 */
export const EvaluationDataCenterSystemTextbookProvincialLocalCurriculumGet = createRequest<
    EvaluationDataCenterSystemTextbookProvincialLocalCurriculumGetDTO,
    ResModelListTextbookLocalCurriculum
>('EvaluationDataCenterSystemTextbookProvincialLocalCurriculumGet', ({ grade, province_id }) => ({
    url: `/evaluation-data-center/system/textbook/provincial_local_curriculum`,
    method: 'GET',
    params: {
        grade,
        province_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveyInstitutionPaperOneGetDTO {
    institution_paper_id: string;
}
/**
 * Query One
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionPaperOneGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyInstitutionPaperOneGetDTO,
    ResModelInstitutionPaper
>('KcjcjcEvaluationDataCenterSurveyInstitutionPaperOneGet', ({ institution_paper_id }) => ({
    url: `/kcjcjc/evaluation-data-center/survey/institution_paper/one`,
    method: 'GET',
    params: {
        institution_paper_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskAllGetDTO {
    name?: string;
    page?: number;
    progress_status?: ProgressStatus;
    size?: number;
}
/**
 * Query All
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskAllGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyInstitutionTaskAllGetDTO,
    ResModelPageSizeResModelListQueryAllRes
>(
    'KcjcjcEvaluationDataCenterSurveyInstitutionTaskAllGet',
    ({ name, progress_status, page, size }) => ({
        url: `/kcjcjc/evaluation-data-center/survey/institution_task/all`,
        method: 'GET',
        params: {
            name,
            progress_status,
            page,
            size,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskAllPaperTaskGetDTO {
    institution_id: string;
    survey_id: string;
}
/**
 * All Paper Task
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskAllPaperTaskGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyInstitutionTaskAllPaperTaskGetDTO,
    ResModelListOneTaskPaperRes
>(
    'KcjcjcEvaluationDataCenterSurveyInstitutionTaskAllPaperTaskGet',
    ({ survey_id, institution_id }) => ({
        url: `/kcjcjc/evaluation-data-center/survey/institution_task/all_paper_task`,
        method: 'GET',
        params: {
            survey_id,
            institution_id,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskCreateProvincialPaperPostDTO {
    requestBody: SurveyInstitutionReq;
}
/**
 * Create Provincial Paper
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskCreateProvincialPaperPost =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyInstitutionTaskCreateProvincialPaperPostDTO,
        ResModelStr
    >(
        'KcjcjcEvaluationDataCenterSurveyInstitutionTaskCreateProvincialPaperPost',
        ({ requestBody }) => ({
            url: `/kcjcjc/evaluation-data-center/survey/institution_task/create_provincial_paper`,
            method: 'POST',
            data: requestBody,
            headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskGradeSubjectGroupsGetDTO {
    institution_paper_id: string;
}
/**
 * Grade Subject Groups
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskGradeSubjectGroupsGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyInstitutionTaskGradeSubjectGroupsGetDTO,
    ResModelGradeSubjectGroupsRes
>(
    'KcjcjcEvaluationDataCenterSurveyInstitutionTaskGradeSubjectGroupsGet',
    ({ institution_paper_id }) => ({
        url: `/kcjcjc/evaluation-data-center/survey/institution_task/grade_subject_groups`,
        method: 'GET',
        params: {
            institution_paper_id,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskOneDetailGetDTO {
    institution_id: string;
    survey_id: string;
}
/**
 * One Detail
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskOneDetailGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyInstitutionTaskOneDetailGetDTO,
    ResModelOneDetailRes
>(
    'KcjcjcEvaluationDataCenterSurveyInstitutionTaskOneDetailGet',
    ({ survey_id, institution_id }) => ({
        url: `/kcjcjc/evaluation-data-center/survey/institution_task/one_detail`,
        method: 'GET',
        params: {
            survey_id,
            institution_id,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskPaperGetDTO {
    institution_paper_id: string;
}
/**
 * Query Paper
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskPaperGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyInstitutionTaskPaperGetDTO,
    ResModelPaperItem
>('KcjcjcEvaluationDataCenterSurveyInstitutionTaskPaperGet', ({ institution_paper_id }) => ({
    url: `/kcjcjc/evaluation-data-center/survey/institution_task/paper`,
    method: 'GET',
    params: {
        institution_paper_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskPaperItemsAnsGetDTO {
    institution_paper_id: string;
}
/**
 * Paper Items Ans
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskPaperItemsAnsGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyInstitutionTaskPaperItemsAnsGetDTO,
    ResModelPaperItemsAnsRes
>(
    'KcjcjcEvaluationDataCenterSurveyInstitutionTaskPaperItemsAnsGet',
    ({ institution_paper_id }) => ({
        url: `/kcjcjc/evaluation-data-center/survey/institution_task/paper_items_ans`,
        method: 'GET',
        params: {
            institution_paper_id,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemPostDTO {
    requestBody: SubmitItemReq;
}
/**
 * Submit Item
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemPost = createRequest<
    KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemPostDTO,
    ResModelStr
>('KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemPost', ({ requestBody }) => ({
    url: `/kcjcjc/evaluation-data-center/survey/institution_task/submit_item`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemByCustomKeyPostDTO {
    requestBody: SubmitItemByCustomKeyReq;
}
/**
 * Submit Item By Custom Key
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemByCustomKeyPost =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemByCustomKeyPostDTO,
        ResModelStr
    >(
        'KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemByCustomKeyPost',
        ({ requestBody }) => ({
            url: `/kcjcjc/evaluation-data-center/survey/institution_task/submit_item_by_custom_key`,
            method: 'POST',
            data: requestBody,
            headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemByCustomKeyPostDTO {
    requestBody: SubmitItemFromOtherItemReqByCustomKey;
}
/**
 * Submit Item From Other Item
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemByCustomKeyPost =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemByCustomKeyPostDTO,
        ResModelStr
    >(
        'KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitItemFromOtherItemByCustomKeyPost',
        ({ requestBody }) => ({
            url: `/kcjcjc/evaluation-data-center/survey/institution_task/submit_item_from_other_item_by_custom_key`,
            method: 'POST',
            data: requestBody,
            headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitPaperPostDTO {
    requestBody: SubmitPaperReq;
}
/**
 * Submit Paper
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitPaperPost = createRequest<
    KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitPaperPostDTO,
    ResModelStr
>('KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitPaperPost', ({ requestBody }) => ({
    url: `/kcjcjc/evaluation-data-center/survey/institution_task/submit_paper`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitTableItemPostDTO {
    requestBody: SubmitTableItemReq;
}
/**
 * Submit Table Item
 */
export const KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitTableItemPost = createRequest<
    KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitTableItemPostDTO,
    ResModelStr
>('KcjcjcEvaluationDataCenterSurveyInstitutionTaskSubmitTableItemPost', ({ requestBody }) => ({
    url: `/kcjcjc/evaluation-data-center/survey/institution_task/submit_table_item`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveySurveyGetInstitutionLevelHasTableGetDTO {
    survey_id: string;
}
/**
 * Progress Status For All Levels
 */
export const KcjcjcEvaluationDataCenterSurveySurveyGetInstitutionLevelHasTableGet = createRequest<
    KcjcjcEvaluationDataCenterSurveySurveyGetInstitutionLevelHasTableGetDTO,
    ResModelInstitutionLevelHasTableRes
>('KcjcjcEvaluationDataCenterSurveySurveyGetInstitutionLevelHasTableGet', ({ survey_id }) => ({
    url: `/kcjcjc/evaluation-data-center/survey/survey/get_institution_level_has_table`,
    method: 'GET',
    params: {
        survey_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveySurveyOneGetDTO {
    survey_id: string;
}
/**
 * Query One
 */
export const KcjcjcEvaluationDataCenterSurveySurveyOneGet = createRequest<
    KcjcjcEvaluationDataCenterSurveySurveyOneGetDTO,
    ResModelAllRes
>('KcjcjcEvaluationDataCenterSurveySurveyOneGet', ({ survey_id }) => ({
    url: `/kcjcjc/evaluation-data-center/survey/survey/one`,
    method: 'GET',
    params: {
        survey_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveySurveySchoolInfoAddPostDTO {
    requestBody: AddReq;
}
/**
 * Add
 */
export const KcjcjcEvaluationDataCenterSurveySurveySchoolInfoAddPost = createRequest<
    KcjcjcEvaluationDataCenterSurveySurveySchoolInfoAddPostDTO,
    ResModelStr
>('KcjcjcEvaluationDataCenterSurveySurveySchoolInfoAddPost', ({ requestBody }) => ({
    url: `/kcjcjc/evaluation-data-center/survey/survey_school_info/add`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveySurveySchoolInfoOneGetDTO {
    survey_id: string;
}
/**
 * Query One
 */
export const KcjcjcEvaluationDataCenterSurveySurveySchoolInfoOneGet = createRequest<
    KcjcjcEvaluationDataCenterSurveySurveySchoolInfoOneGetDTO,
    ResModelQueryOneRes
>('KcjcjcEvaluationDataCenterSurveySurveySchoolInfoOneGet', ({ survey_id }) => ({
    url: `/kcjcjc/evaluation-data-center/survey/survey_school_info/one`,
    method: 'GET',
    params: {
        survey_id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveySurveySchoolInfoUpdatePostDTO {
    requestBody: AddReq;
}
/**
 * Add
 */
export const KcjcjcEvaluationDataCenterSurveySurveySchoolInfoUpdatePost = createRequest<
    KcjcjcEvaluationDataCenterSurveySurveySchoolInfoUpdatePostDTO,
    ResModelStr
>('KcjcjcEvaluationDataCenterSurveySurveySchoolInfoUpdatePost', ({ requestBody }) => ({
    url: `/kcjcjc/evaluation-data-center/survey/survey_school_info/update`,
    method: 'POST',
    data: requestBody,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsGetDTO {
    compulsory?: boolean;
    survey_id: string;
    term?: number | null;
    top_key?: string | null;
    top_level: number;
}
/**
 * Course Offerings
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsGetDTO,
    ResModelCourseOfferingsRes
>(
    'KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsGet',
    ({ survey_id, top_level, top_key, compulsory, term }) => ({
        url: `/kcjcjc/evaluation-data-center/survey_analysis/course_ana/course_offerings`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
            compulsory,
            term,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsMapGetDTO {
    education_stage: string;
    grade: string;
    subject: string;
    survey_id: string;
    term?: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Course Offerings Map
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsMapGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsMapGetDTO,
    ResModelListRegionMapRes
>(
    'KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCourseOfferingsMapGet',
    ({ survey_id, top_level, top_key, education_stage, term, subject, grade }) => ({
        url: `/kcjcjc/evaluation-data-center/survey_analysis/course_ana/course_offerings_map`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
            education_stage,
            term,
            subject,
            grade,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCurriculumImplementationPlanningGetDTO {
    education_stage: string;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Curriculum Implementation Planning
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCurriculumImplementationPlanningGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCurriculumImplementationPlanningGetDTO,
        ResModelCurriculumImplementationPlanningRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaCurriculumImplementationPlanningGet',
        ({ survey_id, top_level, top_key, education_stage }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/course_ana/curriculum_implementation_planning`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                education_stage,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaGradeSubjectGetDTO {
    grade: string;
    survey_id: string;
    term?: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Grade Subject
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaGradeSubjectGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaGradeSubjectGetDTO,
    ResModelListSubjectRes
>(
    'KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaGradeSubjectGet',
    ({ survey_id, top_level, top_key, grade, term }) => ({
        url: `/kcjcjc/evaluation-data-center/survey_analysis/course_ana/grade_subject`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
            grade,
            term,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaNonSubjectCourseOfferingsGetDTO {
    education_stage: string;
    survey_id: string;
    term?: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Non Subject Course Offerings
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaNonSubjectCourseOfferingsGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaNonSubjectCourseOfferingsGetDTO,
        ResModelListNonSubjectCourseOfferingsOneGradeRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaNonSubjectCourseOfferingsGet',
        ({ survey_id, top_level, top_key, education_stage, term }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/course_ana/non_subject_course_offerings`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                education_stage,
                term,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaSubjectGradeCourseOfferingsGetDTO {
    compulsory?: boolean;
    grades: string;
    subject: number;
    survey_id: string;
    term?: number | null;
    top_key?: number | null;
    top_level: number;
}
/**
 * Subject Grade Course Offerings
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaSubjectGradeCourseOfferingsGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaSubjectGradeCourseOfferingsGetDTO,
        ResModelListSubjectGradeCourseOfferingsRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaSubjectGradeCourseOfferingsGet',
        ({ survey_id, top_level, top_key, compulsory, term, subject, grades }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/course_ana/subject_grade_course_offerings`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                compulsory,
                term,
                subject,
                grades,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaUseOfTeachingMaterialsMapGetDTO {
    count_field: string;
    education_stage: string;
    grade: string;
    subject: string;
    survey_id: string;
    term?: string;
    textbook_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Use Of Teaching Materials Map
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaUseOfTeachingMaterialsMapGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaUseOfTeachingMaterialsMapGetDTO,
        ResModelListRegionMapRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaUseOfTeachingMaterialsMapGet',
        ({
            survey_id,
            top_level,
            top_key,
            education_stage,
            term,
            grade,
            subject,
            textbook_id,
            count_field,
        }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/course_ana/use_of_teaching_materials_map`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                education_stage,
                term,
                grade,
                subject,
                textbook_id,
                count_field,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaUseOfTeachingMaterialsMapDownloadGetDTO {
    download_file_name?: string;
    education_stage: string;
    grade: string;
    subject: string;
    survey_id: string;
    term?: string;
    textbook_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Use Of Teaching Materials Map Download
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaUseOfTeachingMaterialsMapDownloadGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaUseOfTeachingMaterialsMapDownloadGetDTO,
        ResModelDownloadRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisCourseAnaUseOfTeachingMaterialsMapDownloadGet',
        ({
            survey_id,
            top_level,
            top_key,
            education_stage,
            term,
            grade,
            subject,
            textbook_id,
            download_file_name,
        }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/course_ana/use_of_teaching_materials_map_download`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                education_stage,
                term,
                grade,
                subject,
                textbook_id,
                download_file_name,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheCsaAnaUnderEachInstitutionGetDTO {
    query_level: number;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Analysis Of The Csa Ana Under Each Institution
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheCsaAnaUnderEachInstitutionGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheCsaAnaUnderEachInstitutionGetDTO,
        ResModelListRegionClassStudentAverageRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheCsaAnaUnderEachInstitutionGet',
        ({ survey_id, top_level, top_key, query_level }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/general/analysis_of_the_csa_ana_under_each_institution`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                query_level,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheNatureOfSchoolsUnderEachInstitutionGetDTO {
    query_level: number;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Analysis Of The Nature Of Schools Under Each Institution
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheNatureOfSchoolsUnderEachInstitutionGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheNatureOfSchoolsUnderEachInstitutionGetDTO,
        ResModelListRegionCntRateListRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheNatureOfSchoolsUnderEachInstitutionGet',
        ({ survey_id, top_level, top_key, query_level }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/general/analysis_of_the_nature_of_schools_under_each_institution`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                query_level,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheTypeOfSchoolsUnderEachInstitutionGetDTO {
    query_level: number;
    school_nature?: number | null;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Analysis Of The Type Of Schools Under Each Institution
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheTypeOfSchoolsUnderEachInstitutionGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheTypeOfSchoolsUnderEachInstitutionGetDTO,
        ResModelListRegionCntRateListRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralAnalysisOfTheTypeOfSchoolsUnderEachInstitutionGet',
        ({ survey_id, top_level, top_key, query_level, school_nature }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/general/analysis_of_the_type_of_schools_under_each_institution`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                query_level,
                school_nature,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralClassStudentAverageAnaGetDTO {
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Class Student Average Ana
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralClassStudentAverageAnaGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisGeneralClassStudentAverageAnaGetDTO,
        ResModelListClassStudentAverageRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralClassStudentAverageAnaGet',
        ({ survey_id, top_level, top_key }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/general/class_student_average_ana`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusGetDTO {
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Progress Status
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusGetDTO,
    ResModelProgressStatusRes
>(
    'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusGet',
    ({ survey_id, top_level, top_key }) => ({
        url: `/kcjcjc/evaluation-data-center/survey_analysis/general/progress_status`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllInstitutionsGetDTO {
    query_level: number;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Progress Status For All Institutions
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllInstitutionsGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllInstitutionsGetDTO,
        ResModelListRegionProgressRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllInstitutionsGet',
        ({ survey_id, top_level, top_key, query_level }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/general/progress_status_for_all_institutions`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
                query_level,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllLevelsGetDTO {
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * Progress Status For All Levels
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllLevelsGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllLevelsGetDTO,
        ResModelListInstitutionLevelProgressDistributionRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProgressStatusForAllLevelsGet',
        ({ survey_id, top_level, top_key }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/general/progress_status_for_all_levels`,
            method: 'GET',
            params: {
                survey_id,
                top_level,
                top_key,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProvinceTasksDetailGetDTO {
    page?: number;
    process_status?: number | null;
    region_name?: string | null;
    size?: number;
    survey_id: string;
}
/**
 * Province Tasks Detail
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProvinceTasksDetailGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProvinceTasksDetailGetDTO,
    ResModelPageSizeResModelListSchoolTaskDetailRes
>(
    'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralProvinceTasksDetailGet',
    ({ survey_id, process_status, region_name, page, size }) => ({
        url: `/kcjcjc/evaluation-data-center/survey_analysis/general/province_tasks_detail`,
        method: 'GET',
        params: {
            survey_id,
            process_status,
            region_name,
            page,
            size,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolNatureAnaGetDTO {
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * School Nature Ana
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolNatureAnaGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolNatureAnaGetDTO,
    ResModelListCntRateAnaRes
>(
    'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolNatureAnaGet',
    ({ survey_id, top_level, top_key }) => ({
        url: `/kcjcjc/evaluation-data-center/survey_analysis/general/school_nature_ana`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolTasksDetailGetDTO {
    page?: number;
    process_status?: number | null;
    region_name?: string | null;
    school_nature?: number | null;
    school_type?: number | null;
    size?: number;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * School Tasks Detail
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolTasksDetailGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolTasksDetailGetDTO,
    ResModelPageSizeResModelListSchoolTaskDetailRes
>(
    'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolTasksDetailGet',
    ({
        survey_id,
        top_level,
        top_key,
        process_status,
        region_name,
        school_type,
        school_nature,
        page,
        size,
    }) => ({
        url: `/kcjcjc/evaluation-data-center/survey_analysis/general/school_tasks_detail`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
            process_status,
            region_name,
            school_type,
            school_nature,
            page,
            size,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolTypeAnaGetDTO {
    school_nature?: number | null;
    survey_id: string;
    top_key?: string | null;
    top_level: number;
}
/**
 * School Type Ana
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolTypeAnaGet = createRequest<
    KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolTypeAnaGetDTO,
    ResModelListCntRateAnaRes
>(
    'KcjcjcEvaluationDataCenterSurveyAnalysisGeneralSchoolTypeAnaGet',
    ({ survey_id, top_level, top_key, school_nature }) => ({
        url: `/kcjcjc/evaluation-data-center/survey_analysis/general/school_type_ana`,
        method: 'GET',
        params: {
            survey_id,
            top_level,
            top_key,
            school_nature,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumDevelopmentEntityGetDTO {
    province_id?: string | null;
    survey_id: string;
}
/**
 * Get Province Local Curriculum Development Entity
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumDevelopmentEntityGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumDevelopmentEntityGetDTO,
        ResModelListProvinceLocalCurriculumTotalHoursStructureRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumDevelopmentEntityGet',
        ({ survey_id, province_id }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/province_ana/get_province_local_curriculum_development_entity`,
            method: 'GET',
            params: {
                survey_id,
                province_id,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumNumGetDTO {
    survey_id: string;
}
/**
 * Get Province Local Curriculum Num
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumNumGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumNumGetDTO,
        ResModelListProvinceLocalCurriculumRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumNumGet',
        ({ survey_id }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/province_ana/get_province_local_curriculum_num`,
            method: 'GET',
            params: {
                survey_id,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumResourceFormGetDTO {
    province_id?: string | null;
    survey_id: string;
}
/**
 * Get Province Local Curriculum Resource Form
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumResourceFormGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumResourceFormGetDTO,
        ResModelListProvinceLocalCurriculumResourceFormRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumResourceFormGet',
        ({ survey_id, province_id }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/province_ana/get_province_local_curriculum_resource_form`,
            method: 'GET',
            params: {
                survey_id,
                province_id,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumSubjectGetDTO {
    opening_method?: number | null;
    province_id?: string | null;
    survey_id: string;
}
/**
 * Get Province Local Curriculum Subject
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumSubjectGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumSubjectGetDTO,
        ResModelListProvinceLocalCurriculumSubjectRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumSubjectGet',
        ({ survey_id, province_id, opening_method }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/province_ana/get_province_local_curriculum_subject`,
            method: 'GET',
            params: {
                survey_id,
                province_id,
                opening_method,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumTotalHoursStructureGetDTO {
    province_id?: string | null;
    survey_id: string;
}
/**
 * Get Province Local Curriculum Total Hours Structure
 */
export const KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumTotalHoursStructureGet =
    createRequest<
        KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumTotalHoursStructureGetDTO,
        ResModelListProvinceLocalCurriculumTotalHoursStructureRes
    >(
        'KcjcjcEvaluationDataCenterSurveyAnalysisProvinceAnaGetProvinceLocalCurriculumTotalHoursStructureGet',
        ({ survey_id, province_id }) => ({
            url: `/kcjcjc/evaluation-data-center/survey_analysis/province_ana/get_province_local_curriculum_total_hours_structure`,
            method: 'GET',
            params: {
                survey_id,
                province_id,
            },
            headers: { 'Service-Name': serviceName },
        }),
    );

export interface KcjcjcEvaluationDataCenterSystemInstitutionProvincialSchoolGetDTO {
    province_id: string;
    school_name?: string | null;
}
/**
 * Provincial School
 */
export const KcjcjcEvaluationDataCenterSystemInstitutionProvincialSchoolGet = createRequest<
    KcjcjcEvaluationDataCenterSystemInstitutionProvincialSchoolGetDTO,
    ResModelListProvincialSchoolRes
>(
    'KcjcjcEvaluationDataCenterSystemInstitutionProvincialSchoolGet',
    ({ province_id, school_name }) => ({
        url: `/kcjcjc/evaluation-data-center/system/institution/provincial_school`,
        method: 'GET',
        params: {
            province_id,
            school_name,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

/**
 * Query One
 */
export const KcjcjcEvaluationDataCenterSystemSchoolInfoOneGet = createRequest<
    undefined,
    ResModelUnionSurveySchoolInfoReqNoneType
>('KcjcjcEvaluationDataCenterSystemSchoolInfoOneGet', () => ({
    url: `/kcjcjc/evaluation-data-center/system/school_info/one`,
    method: 'GET',
    headers: { 'Service-Name': serviceName },
}));

/**
 * System Dict
 */
export const KcjcjcEvaluationDataCenterSystemSystemDictSystemDictGet = createRequest<
    undefined,
    ResModelDictStrEnumTypeRes
>('KcjcjcEvaluationDataCenterSystemSystemDictSystemDictGet', () => ({
    url: `/kcjcjc/evaluation-data-center/system/system_dict/system_dict`,
    method: 'GET',
    headers: { 'Service-Name': serviceName },
}));

export interface KcjcjcEvaluationDataCenterSystemTextbookAllGetDTO {
    editor_in_chief?: string | null;
    grade?: number | null;
    name?: string | null;
    publishing_unit?: string | null;
    school_term?: number | null;
    show_in_class_schedule?: boolean | null;
    stage?: number | null;
    subject?: number | null;
}
/**
 * Query All
 */
export const KcjcjcEvaluationDataCenterSystemTextbookAllGet = createRequest<
    KcjcjcEvaluationDataCenterSystemTextbookAllGetDTO,
    ResModelListTextbook
>(
    'KcjcjcEvaluationDataCenterSystemTextbookAllGet',
    ({
        grade,
        subject,
        name,
        editor_in_chief,
        publishing_unit,
        show_in_class_schedule,
        stage,
        school_term,
    }) => ({
        url: `/kcjcjc/evaluation-data-center/system/textbook/all`,
        method: 'GET',
        params: {
            grade,
            subject,
            name,
            editor_in_chief,
            publishing_unit,
            show_in_class_schedule,
            stage,
            school_term,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSystemTextbookProvincialLocalCurriculumGetDTO {
    editor_in_chief?: string | null;
    grade?: number | null;
    length_of_schooling?: number | null;
    province_id?: string | null;
    publishing_unit?: string | null;
    subject?: string | null;
}
/**
 * Provincial Local Curriculum
 */
export const KcjcjcEvaluationDataCenterSystemTextbookProvincialLocalCurriculumGet = createRequest<
    KcjcjcEvaluationDataCenterSystemTextbookProvincialLocalCurriculumGetDTO,
    ResModelListTextbookLocalCurriculum
>(
    'KcjcjcEvaluationDataCenterSystemTextbookProvincialLocalCurriculumGet',
    ({ grade, province_id, subject, publishing_unit, editor_in_chief, length_of_schooling }) => ({
        url: `/kcjcjc/evaluation-data-center/system/textbook/provincial_local_curriculum`,
        method: 'GET',
        params: {
            grade,
            province_id,
            subject,
            publishing_unit,
            editor_in_chief,
            length_of_schooling,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface KcjcjcEvaluationDataCenterSystemTextbookSubjectsGetDTO {
    stage?: number | null;
}
/**
 * Query Subjects
 */
export const KcjcjcEvaluationDataCenterSystemTextbookSubjectsGet = createRequest<
    KcjcjcEvaluationDataCenterSystemTextbookSubjectsGetDTO,
    ResModelListQuerySubjectRes
>('KcjcjcEvaluationDataCenterSystemTextbookSubjectsGet', ({ stage }) => ({
    url: `/kcjcjc/evaluation-data-center/system/textbook/subjects`,
    method: 'GET',
    params: {
        stage,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface AddReq {
    available_grades?: number[] | null;
    college_entrance_examination_time?: number | null;
    create_year: number;
    length_of_schooling?: number | null;
    nature: number;
    overseas_courses?: boolean | null;
    school_location: number;
    school_type: number;
    survey_id: string;
}

export interface AllRes {
    _id: string;
    creator_id: string;
    creator_name: string;
    ctime: string;
    description: string;
    end_time: string;
    is_test: number;
    level: number;
    mtime: string;
    name: string;
    progress_status: ProgressStatus;
    publish_state: number;
    start_time: string;
}

export interface AnswerLimit {
    allow_optional: boolean;
    default_value: null;
    file_type: string[] | null;
    max_length: number | null;
    max_value: number | null;
    min_length: number | null;
    min_value: number | null;
    placeholder: string | null;
    text_type: string;
}

export interface AuditDetailRes {
    audit_state: number;
    level: number;
    level_name: string;
}

export interface BulkSubmitTableItemReq {
    cells: CellReq[];
    institution_paper_id: string;
    item_id: string;
    qs_idx?: number;
}

export interface CellReq {
    ans: null;
    x: number;
    y: number;
}

export interface ClassStudentAverageRes {
    class_average: number | null;
    id: number;
    name: string;
    student_average: number;
}

export interface ClassStudentCntRes {
    class_cnt: number | null;
    id: number;
    name: string;
    student_cnt: number;
}

export interface CntRateAnaRes {
    cnt: number;
    id: number;
    name: string;
    rate: number;
}

export interface CodeMap {
    code: number;
    name: string;
}

export interface CourseOfferingsDataRes {
    id: number;
    name: string;
    rate_list: number[];
}

export interface CourseOfferingsRes {
    data: CourseOfferingsDataRes[];
    title: CourseOfferingsTitleRes[];
}

export interface CourseOfferingsTitleRes {
    key: string;
    name: string;
    type: string;
}

export interface CurriculumImplementationPlanningRes {
    rate: number;
    school_cnt: number;
    upload_cnt: number;
}

export interface DownloadRes {
    link: string;
}

export interface EnumTypeRes {
    code: string;
    code_map: CodeMap[];
    name: string;
}

export interface GradeSubjectGroupsDataRes {
    id: number;
    name: string;
    subject_groups: string[];
}

export interface GradeSubjectGroupsRes {
    college_entrance_examination_time: number | null;
    data: GradeSubjectGroupsDataRes[];
}

export interface HttpValidationError {
    detail?: ValidationError[];
}

export interface InstitutionLevelHasTableRes {
    has_province_table: boolean;
    has_school_table: boolean;
}

export interface InstitutionLevelProgressDistributionRes {
    level: number;
    level_name: string;
    progress_status: ProgressStatusRes;
}

export interface InstitutionPaper {
    _id: string;
    audit_status: number;
    college_entrance_examination_time: number | null;
    ctime: string;
    institution_id: string;
    institution_level: number;
    institution_name: string;
    key: string;
    length_of_schooling: number | null;
    mtime: string;
    name: string;
    num_items_to_answer: number;
    paper_id: string;
    paper_item: PaperItem;
    paper_item_ids: string[];
    paper_item_num: number;
    stage_list: number[];
    submit_time: string | null;
    survey_id: string;
    survey_paper_id: string;
    survey_paper_name: string;
}

export interface InstitutionTask {
    _id: string;
    city_id: string | null;
    city_name: string | null;
    ctime: string;
    district_id: string | null;
    district_name: string | null;
    institution_id: string;
    institution_level: number;
    institution_name: string;
    mtime: string;
    province_id: string | null;
    province_name: string | null;
    school_nature: number | null;
    school_type: number | null;
    survey_id: string;
    task_status: number;
}

export interface Item {
    _id: string;
    alert: string;
    ctime: string;
    hide: boolean;
    key: string | null;
    mtime: string;
    qs: Qs[];
    sg_mark: boolean;
    special_key: string | null;
    stem: string | null;
    title: string | null;
}

export interface NonSubjectCourseOfferingsOneGradeRes {
    id: number;
    name: string;
    value: NonSubjectCourseOfferingsOneSubjectRes[];
}

export interface NonSubjectCourseOfferingsOneSubjectRes {
    id: number;
    name: string;
    value: NonSubjectCourseOfferingsOneTypeRes[];
}

export interface NonSubjectCourseOfferingsOneTypeRes {
    cnt: number;
    id: number;
    name: string;
    rate: number;
}

export interface OneDetailRes {
    institution_task: InstitutionTask;
    survey: Survey;
    task_progress_status: TaskProgressStatusRes;
}

export interface OneTaskPaperRes {
    id: string;
    name: string;
    paper_progress_status: PaperProgressStatusRes;
}

export interface PageSizeResModelListInstitutionTask {
    cnt: number;
    data: InstitutionTask[] | null;
    page: number;
    size: number;
    total: number;
}

export interface PageSizeResModelListQueryAllRes {
    cnt: number;
    data: QueryAllRes[] | null;
    page: number;
    size: number;
    total: number;
}

export interface PageSizeResModelListSchoolTaskDetailRes {
    cnt: number;
    data: SchoolTaskDetailRes[] | null;
    page: number;
    size: number;
    total: number;
}

export interface Paper {
    _id: string;
    ctime: string;
    description: string;
    mtime: string;
    parts: PaperPart[];
    title: string;
}

export interface PaperItem {
    items_map: { [key: string]: Item };
    paper: Paper;
}

export interface PaperItemsAnsRes {
    qs_ans_map: { [key: string]: any };
}

export interface PaperPart {
    groups: PaperPartGroup[];
    title: string;
}

export interface PaperPartGroup {
    item_ids: string[];
    title: string | null;
}

export interface PaperProgressStatusRes {
    answered_items: number;
    audit_detail: AuditDetailRes | null;
    audit_status: number;
    audit_status_name: string;
    num_items_to_answer: number;
}

export enum ProgressStatus {
    'all' = 'all',
    'not_started' = 'not_started',
    'in_progress' = 'in_progress',
    'completed' = 'completed',
}

export interface ProgressStatusRes {
    completed: number;
    in_progress: number;
    not_started: number;
    total: number;
}

export interface ProvinceLocalCurriculumRes {
    class_hour_num: number;
    course_num: number;
    province_code: string;
    province_id: string;
    province_name: string;
}

export interface ProvinceLocalCurriculumResourceFormRes {
    code: number;
    name: string;
    num: number;
}

export interface ProvinceLocalCurriculumSubjectRes {
    course_topic_type: number;
    name: string;
    num: number;
}

export interface ProvinceLocalCurriculumTotalHoursStructureRes {
    code: number;
    name: string;
    num: number;
}

export interface ProvincialSchoolRes {
    id: string;
    name: string;
}

export interface Qs {
    answer_limit: AnswerLimit | null;
    key: string | null;
    optional: boolean;
    opts: string[] | null;
    stem: string | null;
    sub_qs: SubQs[] | null;
    sub_type: number;
    table: QsTable | null;
    title: string | null;
    type: number;
}

export interface QsAnswer {
    ans: null[];
}

export interface QsTable {
    row_headers_span_columns: number;
    x: QsTableXy[] | null;
    y: QsTableXy[] | null;
}

export interface QsTableXy {
    answer_limit: AnswerLimit | null;
    col_key: string | null;
    fixed: string;
    group_col_key: string | null;
    group_key: string | number | null;
    group_name: string | null;
    key: string | number | null;
    name: string;
    name_length: number;
}

export interface QueryAllRes {
    description: string;
    end_time: string;
    institution_id: string;
    institution_level: number;
    institution_name: string;
    institution_task_id: string;
    name: string;
    progress_status: ProgressStatus;
    start_time: string;
    survey_id: string;
}

export interface QueryOneRes {
    school_info: SchoolInfoRes;
    source: string;
}

export interface QuerySubjectRes {
    code: number;
    name: string;
}

export interface RegionClassStudentAverageRes {
    class_student_cnt: ClassStudentCntRes[];
    region_id: string;
    region_level: number;
    region_name: string;
    sort_key: string;
}

export interface RegionCntRateListRes {
    cnt_rate_ana: CntRateAnaRes[];
    region_code: string | null;
    region_id: string;
    region_level: number;
    region_name: string;
}

export interface RegionMapRes {
    rate: number;
    region_code: string;
    region_id: string;
    region_level: number;
    region_name: string;
}

export interface RegionProgressRes {
    progress_status: ProgressStatusRes;
    region_code: string | null;
    region_id: string;
    region_level: number;
    region_name: string;
}

export interface ResInput {
    data: null;
    status: ResStatusInput;
    timestamp: number;
}

export interface ResModelAllRes {
    data: AllRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelCourseOfferingsRes {
    data: CourseOfferingsRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelCurriculumImplementationPlanningRes {
    data: CurriculumImplementationPlanningRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelDictStrEnumTypeRes {
    data: { [key: string]: EnumTypeRes } | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelDownloadRes {
    data: DownloadRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelGradeSubjectGroupsRes {
    data: GradeSubjectGroupsRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelInstitutionLevelHasTableRes {
    data: InstitutionLevelHasTableRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelInstitutionPaper {
    data: InstitutionPaper | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListClassStudentAverageRes {
    data: ClassStudentAverageRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListCntRateAnaRes {
    data: CntRateAnaRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListCurriculumImplementationPlanningRes {
    data: CurriculumImplementationPlanningRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListInstitutionLevelProgressDistributionRes {
    data: InstitutionLevelProgressDistributionRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListNonSubjectCourseOfferingsOneGradeRes {
    data: NonSubjectCourseOfferingsOneGradeRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListOneTaskPaperRes {
    data: OneTaskPaperRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListProvinceLocalCurriculumRes {
    data: ProvinceLocalCurriculumRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListProvinceLocalCurriculumResourceFormRes {
    data: ProvinceLocalCurriculumResourceFormRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListProvinceLocalCurriculumSubjectRes {
    data: ProvinceLocalCurriculumSubjectRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListProvinceLocalCurriculumTotalHoursStructureRes {
    data: ProvinceLocalCurriculumTotalHoursStructureRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListProvincialSchoolRes {
    data: ProvincialSchoolRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListQuerySubjectRes {
    data: QuerySubjectRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListRegionClassStudentAverageRes {
    data: RegionClassStudentAverageRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListRegionCntRateListRes {
    data: RegionCntRateListRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListRegionMapRes {
    data: RegionMapRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListRegionProgressRes {
    data: RegionProgressRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListSubjectGradeCourseOfferingsRes {
    data: SubjectGradeCourseOfferingsRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListSubjectRes {
    data: SubjectRes[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListTextbook {
    data: Textbook[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelListTextbookLocalCurriculum {
    data: TextbookLocalCurriculum[] | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelOneDetailRes {
    data: OneDetailRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelPageSizeResModelListInstitutionTask {
    data: PageSizeResModelListInstitutionTask | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelPageSizeResModelListQueryAllRes {
    data: PageSizeResModelListQueryAllRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelPageSizeResModelListSchoolTaskDetailRes {
    data: PageSizeResModelListSchoolTaskDetailRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelPaperItem {
    data: PaperItem | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelPaperItemsAnsRes {
    data: PaperItemsAnsRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelProgressStatusRes {
    data: ProgressStatusRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelQueryOneRes {
    data: QueryOneRes | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelStr {
    data: string | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelSurveySchoolInfoReq {
    data: SurveySchoolInfoReq | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResModelUnionSurveySchoolInfoReqNoneType {
    data: SurveySchoolInfoReq | null;
    status: ResStatusOutput;
    timestamp: number;
}

export interface ResStatusInput {
    code?: number;
    desc?: string;
}

export interface ResStatusOutput {
    code: number;
    desc: string;
}

export interface SchoolInfoRes {
    available_grades: number[] | null;
    college_entrance_examination_time: number | null;
    create_year: number | null;
    length_of_schooling: number | null;
    nature: number | null;
    overseas_courses: boolean | null;
    school_location: number | null;
    school_type: number | null;
}

export interface SchoolTaskDetailRes {
    id: string;
    paper_num: number;
    progress_status: ProgressStatusRes;
    region_id: string;
    region_name: string;
    region_ownership: string;
    school_nature: number | null;
    school_type: number | null;
    task_status: number;
}

export interface SubQs {
    answer_limit: AnswerLimit | null;
    key: string | null;
    stem: string | null;
}

export interface SubjectGradeCourseOfferingsRes {
    rate: number;
    region_code: number;
    region_id: string;
    region_level: number;
    region_name: string;
}

export interface SubjectRes {
    code: number;
    name: string;
}

export interface SubmitItemByCustomKeyReq {
    ans: (number | number | string | null)[];
    custom_key: string;
    institution_paper_id: string;
    item_id: string;
    qs_idx?: number;
}

export interface SubmitItemFromOtherItemReq {
    institution_paper_id: string;
    item_id: string;
    other_item_id: string;
}

export interface SubmitItemFromOtherItemReqByCustomKey {
    custom_key?: string | null;
    institution_paper_id: string;
    item_id: string;
    other_custom_key?: string | null;
    other_item_id: string;
}

export interface SubmitItemReq {
    ans: (number | number | string | null)[];
    institution_paper_id: string;
    item_id: string;
    qs_idx?: number;
}

export interface SubmitPaperReq {
    institution_paper_id: string;
}

export interface SubmitTableItemReq {
    ans: (number | number | string | null)[];
    institution_paper_id: string;
    item_id: string;
    qs_idx?: number;
    x: number;
    y: number;
}

export interface Survey {
    _id: string;
    creator_id: string;
    creator_name: string;
    ctime: string;
    description: string;
    end_time: string;
    is_test: number;
    level: number;
    mtime: string;
    name: string;
    publish_state: number;
    start_time: string;
}

export interface SurveyInstitutionReq {
    institution_id: string;
    survey_id: string;
}

export interface SurveySchoolInfoReq {
    available_grades: number[] | null;
    city_id: string | null;
    college_entrance_examination_time: number | null;
    create_year: number;
    creator_id: string;
    creator_name: string | null;
    district_id: string | null;
    institution_id: string;
    institution_level: number;
    institution_name: string;
    length_of_schooling: number | null;
    nature: number;
    overseas_courses: boolean | null;
    province_id: string | null;
    school_id: string | null;
    school_location: number;
    school_type: number;
    survey_id: string;
}

export interface TaskProgressStatusRes {
    answered_items: number;
    num_items_to_answer: number;
    progress_status: ProgressStatus;
    task_status: number;
    task_status_name: string;
}

export interface Textbook {
    _id: string;
    ctime: string;
    editor_in_chief: string;
    grade: number;
    length_of_schooling: number | null;
    mtime: string;
    name: string;
    publishing_unit: string;
    publishing_unit_list: string[];
    school_term: number | null;
    show_in_class_schedule: boolean;
    stage: number;
    subject: number;
    volume: string;
}

export interface TextbookLocalCurriculum {
    _id: string;
    ctime: string;
    editor_in_chief: string;
    grade: number;
    length_of_schooling: number | null;
    mtime: string;
    name: string;
    province_id: string;
    province_name: string;
    publishing_unit: string;
    publishing_unit_list: string[];
    school_term: number | null;
    show_in_class_schedule: boolean;
    stage: number;
    subject: string;
    volume: string;
}

export interface ValidationError {
    loc: (string | number)[];
    msg: string;
    type: string;
}
